<?php
require_once($_SERVER["DOCUMENT_ROOT"] . '/Esquina_da_TI/ClassesBasicas/Enquete.php');
require_once($_SERVER["DOCUMENT_ROOT"] . '/Esquina_da_TI/ClassesBasicas/EstadoEnquete.php');
require_once('IRepositorioEnquete.php');
require_once('Conexao.php');
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of RepositorioEnquete
 *
 * @author Paulo
 */
class RepositorioEnquete implements IRepositorioEnquete {
    private $conexao = null;


    function __construct() {
        $this->conexao = new Conexao();
    }


    public function cadastrarEnquete($enquete) {
        $this->conexao->abrirConexao();

        $query = "INSERT INTO Enquete(titulo,opcao1,opcao2,opcao3,estado)
                    values('".$enquete->getTitulo()."','".$enquete->getOpcao1()."','".
            $enquete->getOpcao2()."','".$enquete->getOpcao3()."','".$enquete->getEstado()."');";

        if($this->conexao->executarQuery($query)) {//retorna true caso a enquete seja inserida com sucesso no banco.
            return true;
        }else {//retorna false caso não consiga inserir a enquete no banco
            return false;
        }
    }

    public function localizarEnquete($codigo,$titulo) {
        $this->conexao->abrirConexao();
        $enquete = new Enquete();

        $query = "SELECT Enquete.codEnquete, Enquete.titulo, Enquete.opcao1,
            Enquete.opcao2, Enquete.opcao3, Enquete.votos1, Enquete.votos2,
            Enquete.votos3, Enquete.estado FROM Enquete where
            codEnquete='".$codigo."' or titulo='".$titulo."'";

        $r = $this->conexao->executarQuery($query);

        if($this->conexao->numeroLinhas($r) == 0) {
            $usuario = null;
        }else {
            $e = mysql_fetch_array($r);
            $enquete->setCodigo($e['codEnquete']);
            $enquete->setTitulo($e['titulo']);
            $enquete->setOpcao1($e['opcao1']);
            $enquete->setOpcao2($e['opcao2']);
            $enquete->setOpcao3($e['opcao3']);
            $enquete->setVotos1($e['votos1']);
            $enquete->setVotos2($e['votos2']);
            $enquete->setVotos3($e['votos3']);
            $enquete->setEstado($e['estado']);
        }

        $this->conexao->fecharConexao();
        return $enquete;
    }

    public function atualizarEnquete($enquete) {
        $retorno = false;
        
        $this->conexao->abrirConexao();

        $query = "Update Enquete set titulo = '".$enquete->getTitulo()."',
            opcao1 = '".$enquete->getOpcao1()."', opcao2 = '".$enquete->getOpcao2().
            "', opcao3 = '".$enquete->getOpcao3()."', votos1 = '".$enquete->getVotos1().
            "', votos2 = '".$enquete->getVotos2()."', votos3 = '".$enquete->getVotos3().
            "', estado = '".$enquete->getEstado()."' where codEnquete = ".$enquete->getCodigo().";";

        if($this->conexao->executarQuery($query)){
            $retorno = true;
        }

        $this->conexao->fecharConexao();

        return $retorno;
    }

    public function removerEnquete($codigo) {

    }

    public function enqueteAtual() {        
        $enquete = new Enquete();
        $query = "SELECT enquete.titulo, enquete.opcao1, enquete.opcao2, enquete.opcao3 from enquete where estado = '".EstadoEnquete::APURANDO."'";

        $this->conexao->abrirConexao();

        $result = $this->conexao->executarQuery($query);

        if(mysql_num_rows($result) != 0) {
            $e = mysql_fetch_array($result);            
            $enquete->setTitulo($e['titulo']);
            $enquete->setOpcao1($e['opcao1']);
            $enquete->setOpcao2($e['opcao2']);
            $enquete->setOpcao3($e['opcao3']);
        }
        $this->conexao->fecharConexao();
        return $enquete;
    }


    public function votarOpcao1($titulo) {

        $query = "select enquete.votos1 from enquete where enquete.titulo = '".$titulo."'";

        $this->conexao->abrirConexao();

        $r = $this->conexao->executarQuery($query);

        if($this->conexao->numeroLinhas($r) != 0) {
            $e = mysql_fetch_array($r);
            $qtdVotos = $e["votos1"];
        }else {
            $qtdVotos = 0;
        }

        $qtdVotos++;


        $alter = "update enquete set votos1 = ". $qtdVotos ." where enquete.titulo = '".$titulo."'";

        if($this->conexao->executarQuery($alter)) {
            return true;
        }else {
            return false;
        }

        $this->conexao->fecharConexao();
    }



    function votarOpcao2($titulo) {

        $query = "select enquete.votos2 from enquete where enquete.titulo = '".$titulo."'";

        $conexao = new Conexao();

        $conexao->abrirConexao();


        $r = $conexao->executarQuery($query);



        if($this->conexao->numeroLinhas($r) != 0) {
            $e = mysql_fetch_array($r);
            $qtdVotos = $e["votos2"];
        }else {
            $qtdVotos = 0;
        }

        $qtdVotos++;


        $alter = "update enquete set votos2 = ". $qtdVotos ." where enquete.titulo = '".$titulo."'";

        if($conexao->executarQuery($alter)) {
            return true;
        }else {
            return false;
        }

        $this->conexao->fecharConexao();
    }


    function votarOpcao3($titulo) {

        $query = "select enquete.votos3 from enquete where enquete.titulo = '".$titulo."'";

        $conexao = new Conexao();

        $conexao->abrirConexao();


        $r = $conexao->executarQuery($query);



        if($this->conexao->numeroLinhas($r) != 0) {
            $e = mysql_fetch_array($r);
            $qtdVotos = $e["votos3"];
        }else {
            $qtdVotos = 0;
        }

        $qtdVotos++;


        $alter = "update enquete set votos3 = ". $qtdVotos ." where enquete.titulo = '".$titulo."'";

        if($conexao->executarQuery($alter)) {
            return true;
        }else {
            return false;
        }

        $this->conexao->fecharConexao();
    }
}

?>
